//package com.e.library.http;
//
//import android.content.Context;
//import android.text.TextUtils;
//
//import com.e.library.utils.ESPUtils;
//
//import io.reactivex.Observable;
//
//
///**
// * session 过期重新登录
// * Created by lxy on 2017/2/11.
// * http://www.jianshu.com/p/930d7d728230
// */
//
//public class RetryLogin implements Func1<Observable<? extends Throwable>, Observable<?>> {
//
//    private Context mContext;
//
//    public RetryLogin(Context context) {
//        this.mContext = context;
//    }
//
//    @Override
//    public Observable<?> call(final Observable<? extends Throwable> observable) {
//        final Observable<EResponse> login = login();
//        if (login == null) {
//            return null;
//        }
//
////        return login.flatMap(new Func1<EResponse, Observable<?>>() {
////            @Override
////            public Observable<?> call(EResponse response) {
////                return observable;
////            }
////        });
//
//        return observable
//                .zipWith(Observable.range(1, 2), new Func2<Throwable, Integer, Throwable>() {
//            @Override
//            public Throwable call(Throwable throwable, Integer integer) {
//                return throwable;
//            }
//        }).flatMap(new Func1<Throwable, Observable<?>>() {
//            @Override
//            public Observable<?> call(Throwable throwable) {
//                if (throwable instanceof SessionExpireException) {
//                    return login.doOnNext(new Action1<EResponse>() {
//                        @Override
//                        public void call(EResponse response) {
//
//                        }
//                    });
//                }
//                return Observable.error(throwable);
//            }
//        });
//    }
//
//    private Observable<EResponse> login() {
//        Observable<EResponse> login;
//        String account = ESPUtils.getString(mContext, "account");
//        String password = ESPUtils.getString(mContext, "password");
//        if (TextUtils.isEmpty(password) || TextUtils.isEmpty(account)) {
//            return null;//异地登录
//        }
//        boolean sdk = ESPUtils.getBoolean(mContext, "sdk");
//        if (sdk) {
//            String nickname = ESPUtils.getString(mContext, "nickname");
//            login = EClient.with(mContext).api().sdkLogin(account, password, nickname);
//        } else {
//            login = EClient.with(mContext).api().login(account, password);
//        }
//
//        return login;
//    }
//
//}
